Algorithm
Problem Name: 30 days of code -
In this HackerRank in 30 Days of Code -
problem solution,Objective
In this challenge, we're going to learn about the difference between a class and an instance; because this is an Object Oriented concept, it's only enabled in certain languages. Check out the Tutorial tab for learning materials and an instructional video!
Task:
Write a Person class with an instance variable, age, and a constructor that takes an integer, initialAge, as a parameter.
The constructor must assign initialAge to age after confirming the argument passed as initialAge is not negative;
if a negative argument is passed as initialAge, the constructor should set age to 0 and print Age is not valid, setting age to 0..
In addition, you must write the following instance methods:
- yearPasses() should increase the age instance variable by 1.
- amIOld() should perform the following conditional actions:
If age <= 13, print You are young..
If age >= 13 and age < 18, print You are a teenager..
Otherwise, print You are old..
Input Format:
Input is handled for you by the stub code in the editor. The first line contains an integer, T (the number of test cases), and the T
subsequent lines each contain an integer denoting the age of a Person instance.
Constraints:
1 < T < 4
-5 < age < 30
Output Format:
Complete the method definitions provided in the editor so they meet the specifications outlined above;
the code to test your work is already in the editor.
If your methods are implemented correctly, each test case will print 2 or 3 lines (depending on whether or not a valid
initialAge was passed to the constructor).
Sample Input:
4
-1
10
16
18
Sample Output:
Age is not valid, setting age to 0.
You are young.
You are young.
You are young
You are a teenager.
You are a teenager.
You are old.
You are old.
You are old.
Explanation:
Test Case 0: initialAge = -1
Because initialAge < 0, our code must set age to 0 and print the "Age is not valid..." message followed by the young message. Three years pass and
age = 3, so we print the young message again.
Test Case 1:initialAge = 10
Because initialAge < 13, our code should print that the person is young. Three years pass and age = 13,
so we print that the person is now a teenager.
Test Case 2:initialAge = 16
Because 13 < initialAge < 18, our code should print that the person is a teenager. Three years pass and age = 19,
so we print that the person is old.
Test Case 3:initialAge = 18
Because initialAge >= 18 , our code should print that the person is old. Three years pass and the person is still old at age = 21,
so we print the old message again.
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <iostream>
using namespace std;
class Person {
public:
int age;
Person(int initialAge);
void amIOld();
void yearPasses();
};
Person::Person(int initialAge) {
// Add some more code to run some checks on initialAge
if (initialAge > 0) age = initialAge;
else {
cout << "Age is not valid, setting age to 0." << endl;
age = 0;
}
}
void Person::amIOld() {
// Do some computations in here and print out the correct statement to the console
if (age < 13) cout << "You are young." << endl;
else if (age < 18) cout << "You are a teenager." << endl;
else cout << "You are old." << endl;
}
void Person::yearPasses() {
// Increment the age of the person in here
age++;
}
int main() {
int t;
int age;
cin >> t;
for (int i = 0; i < t; i++) {
cin >> age;
Person p(age);
p.amIOld();
for (int j = 0; j < 3; j++) {
p.yearPasses();
}
p.amIOld();
cout << '\n';
}
return 0;
}
Copy The Code &
Try With Live Editor
Input
-1
10
16
18
Output
You are a teenager.
You are a teenager.
You are old.
You are old.
You are old.
#2 Code Example with Python Programming
Code -
Python Programming
class Person:
def __init__(self, initialAge):
if initialAge > 0:
self.age = initialAge
else:
print("Age is not valid, setting age to 0.")
self.age = 0
def amIOld(self):
if self.age < 13:
print("You are young.")
elif self.age < 18:
print("You are a teenager.")
else:
print("You are old.")
def yearPasses(self):
self.age += 1
Copy The Code &
Try With Live Editor
#3 Code Example with Java Programming
Code -
Java Programming
import java.util.Scanner;
public class Solution {
static class Person {
private int age;
public Person(int initialAge) {
// Add some more code to run some checks on initialAge
if (initialAge > 0) {
age = initialAge;
} else {
System.out.println("Age is not valid, setting age to 0.");
age = 0;
}
}
public void amIOld() {
// Write code determining if this person's age is old and print the correct statement:
if (age < 13) System.out.println("You are young.");
else if (age < 18) System.out.println("You are a teenager.");
else System.out.println("You are old.");
}
public void yearPasses() {
// Increment this person's age.
age++;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int age = sc.nextInt();
Person p = new Person(age);
p.amIOld();
for (int j = 0; j < 3; j++) {
p.yearPasses();
}
p.amIOld();
System.out.println();
}
sc.close();
}
}
Copy The Code &
Try With Live Editor
#4 Code Example with Javascript Programming
Code -
Javascript Programming
function Person(initialAge) {
// Add some more code to run some checks on initialAge
if (initialAge < 0) {
console.log("Age is not valid, setting age to 0.");
this.age = 0;
} else {
this.age = initialAge;
}
this.amIOld = function () {
// Do some computations in here and print out the correct statement to the console
if (this.age < 13) {
console.log('You are young.');
} else if (this.age >= 13 && this.age < 18) {
console.log("You are a teenager.");
} else {
console.log('You are old.');
}
};
this.yearPasses = function () {
// Increment the age of the person in here
this.age += 1;
};
}
Copy The Code &
Try With Live Editor
Demonstration
[Solved] Day 4 Class vs. Instance solution in Hackerrank - Hacerrank solution C, C++, C#, java, Js, PHP, Python in 30 days of code